/*     */ package dm.jdbc.driver;
/*     */ 
/*     */ import dm.jdbc.dbaccess.Const;
/*     */ import dm.jdbc.dbaccess.DBError;
/*     */ import dm.jdbc.desc.ColumnDesc;
/*     */ import java.sql.ResultSetMetaData;
/*     */ import java.sql.SQLException;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class DmdbResultSetMetaData_bs
/*     */   extends DmdbDataTypeMetaData
/*     */   implements ResultSetMetaData
/*     */ {
/*  59 */   DmdbStatement_bs stmt = null;
/*     */   
/*  61 */   DmdbColumn[] columnsInfo = null;
/*     */   
/*     */   int concurrency;
/*     */   
/*  65 */   private boolean comOra = false;
/*     */   
/*  67 */   private boolean clobAsString = false;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public DmdbResultSetMetaData_bs(DmdbStatement_bs stmt, DmdbColumn[] columnsInfo, int concurrency, boolean comOra, boolean clobAsString)
/*     */   {
/*  99 */     this.stmt = stmt;
/*     */     
/* 101 */     this.columnsInfo = columnsInfo;
/* 102 */     this.concurrency = concurrency;
/* 103 */     this.comOra = comOra;
/* 104 */     this.clobAsString = clobAsString;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getColumnCount()
/*     */     throws SQLException
/*     */   {
/* 122 */     if (this.columnsInfo == null)
/*     */     {
/* 124 */       return 0;
/*     */     }
/*     */     
/*     */ 
/* 128 */     return this.columnsInfo.length;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isAutoIncrement(int column)
/*     */     throws SQLException
/*     */   {
/* 152 */     if (Const.TRACE_LEVEL > 0) {
/* 153 */       DmdbLog.trace(this, "isAutoIncrement(int)", "column = " + 
/* 154 */         column);
/*     */     }
/* 156 */     checkIndex(column);
/*     */     
/* 158 */     return this.columnsInfo[(column - 1)].getDesc().getIdentity();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isCaseSensitive(int column)
/*     */     throws SQLException
/*     */   {
/* 180 */     if (Const.TRACE_LEVEL > 0)
/* 181 */       DmdbLog.trace(this, "isCaseSensitive(int)", "column = " + 
/* 182 */         column);
/* 183 */     checkIndex(column);
/*     */     
/* 185 */     int t = getColumnType(column);
/* 186 */     boolean isCaseSensitive; boolean isCaseSensitive; boolean isCaseSensitive; switch (t) {
/*     */     case -7: 
/*     */     case -6: 
/*     */     case -4: 
/*     */     case 2: 
/*     */     case 3: 
/*     */     case 4: 
/*     */     case 5: 
/*     */     case 6: 
/*     */     case 7: 
/*     */     case 8: 
/*     */     case 16: 
/*     */     case 91: 
/*     */     case 92: 
/*     */     case 93: 
/*     */     case 2004: 
/*     */     case 2005: 
/* 203 */       isCaseSensitive = false;
/* 204 */       break;
/*     */     case -1: 
/*     */     case 1: 
/*     */     case 12: 
/* 208 */       isCaseSensitive = true;
/* 209 */       break;
/*     */     default: 
/* 211 */       isCaseSensitive = false;
/*     */     }
/*     */     
/* 214 */     return isCaseSensitive;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isSearchable(int column)
/*     */     throws SQLException
/*     */   {
/* 236 */     if (Const.TRACE_LEVEL > 0)
/* 237 */       DmdbLog.trace(this, "isSearchable(int)", "column = " + 
/* 238 */         column);
/* 239 */     checkIndex(column);
/* 240 */     int t = getColumnType(column);
/* 241 */     switch (t) {
/*     */     case -4: 
/*     */     case -3: 
/*     */     case -2: 
/*     */     case -1: 
/*     */     case 2004: 
/*     */     case 2005: 
/* 248 */       return false;
/*     */     }
/* 250 */     return true;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isCurrency(int column)
/*     */     throws SQLException
/*     */   {
/* 273 */     if (Const.TRACE_LEVEL > 0)
/* 274 */       DmdbLog.trace(this, "isCurrency(int)", "column = " + 
/* 275 */         column);
/* 276 */     if (getColumnType(column) == 3) {
/* 277 */       return (getPrecision(column) == 19) && (getScale(column) == 4);
/*     */     }
/* 279 */     return false;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int isNullable(int column)
/*     */     throws SQLException
/*     */   {
/* 304 */     if (Const.TRACE_LEVEL > 0)
/* 305 */       DmdbLog.trace(this, "isNullable(int)", "column = " + 
/* 306 */         column);
/* 307 */     checkIndex(column);
/* 308 */     return this.columnsInfo[(column - 1)].getDesc().getNullable() ? this.columnNullable : 
/* 309 */       this.columnNoNulls;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/* 316 */   int columnNoNulls = 0;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/* 321 */   int columnNullable = 1;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/* 327 */   int columnNullableUnknown = 2;
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isSigned(int column)
/*     */     throws SQLException
/*     */   {
/* 348 */     if (Const.TRACE_LEVEL > 0)
/* 349 */       DmdbLog.trace(this, "isSigned(int)", "column = " + 
/* 350 */         column);
/* 351 */     checkIndex(column);
/* 352 */     int t = getColumnType(column);
/*     */     
/* 354 */     return signed(t);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getColumnDisplaySize(int column)
/*     */     throws SQLException
/*     */   {
/* 377 */     if (Const.TRACE_LEVEL > 0)
/* 378 */       DmdbLog.trace(this, "getColumnDisplaySize(int)", "column = " + 
/* 379 */         column);
/* 380 */     checkIndex(column);
/* 381 */     return this.columnsInfo[(column - 1)].getDisplaySize();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getColumnLabel(int column)
/*     */     throws SQLException
/*     */   {
/* 404 */     if (Const.TRACE_LEVEL > 0)
/* 405 */       DmdbLog.trace(this, "getColumnLabel(int)", "columnIndex = " + 
/* 406 */         column);
/* 407 */     checkIndex(column);
/* 408 */     return this.columnsInfo[(column - 1)].getDesc().getName();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getColumnName(int column)
/*     */     throws SQLException
/*     */   {
/* 430 */     if (Const.TRACE_LEVEL > 0)
/* 431 */       DmdbLog.trace(this, "getColumnName(int)", "columnIndex = " + 
/* 432 */         column);
/* 433 */     String colName = getColumnLabel(column);
/* 434 */     if ((colName != null) && (this.stmt != null) && (this.stmt.getConnection_bs() != null) && (!this.stmt.getConnection_bs().getCaseSensitive()) && (this.stmt.getConnection_bs().getColumnNameUpperCase()))
/*     */     {
/* 436 */       return colName.toUpperCase();
/*     */     }
/*     */     
/* 439 */     return colName;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getSchemaName(int column)
/*     */     throws SQLException
/*     */   {
/* 471 */     if (Const.TRACE_LEVEL > 0)
/* 472 */       DmdbLog.trace(this, "getSchemaName(int)", "column = " + 
/* 473 */         column);
/* 474 */     checkIndex(column);
/*     */     
/* 476 */     String s = this.columnsInfo[(column - 1)].getDesc().getSchName();
/* 477 */     if ((s != null) && (s.length() > 0)) {
/* 478 */       return s;
/*     */     }
/* 480 */     if ((this.stmt != null) && (this.stmt.getConnection_bs() != null)) {
/* 481 */       return this.stmt.getConnection_bs().getUserName();
/*     */     }
/* 483 */     return "";
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getPrecision(int column)
/*     */     throws SQLException
/*     */   {
/* 507 */     if (Const.TRACE_LEVEL > 0)
/* 508 */       DmdbLog.trace(this, "getPrecision(int)", "column = " + 
/* 509 */         column);
/* 510 */     checkIndex(column);
/* 511 */     return this.columnsInfo[(column - 1)].getSqlPrec();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getScale(int column)
/*     */     throws SQLException
/*     */   {
/* 534 */     if (Const.TRACE_LEVEL > 0)
/* 535 */       DmdbLog.trace(this, "getScale(int)", "column = " + 
/* 536 */         column);
/* 537 */     checkIndex(column);
/* 538 */     return this.columnsInfo[(column - 1)].getSqlScale();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getTableName(int column)
/*     */     throws SQLException
/*     */   {
/* 560 */     if (Const.TRACE_LEVEL > 0)
/* 561 */       DmdbLog.trace(this, "getTableName(int)", "column = " + 
/* 562 */         column);
/* 563 */     checkIndex(column);
/* 564 */     return this.columnsInfo[(column - 1)].getDesc().getTabName();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getCatalogName(int column)
/*     */     throws SQLException
/*     */   {
/* 587 */     return "";
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public int getColumnType(int column)
/*     */     throws SQLException
/*     */   {
/* 610 */     if (Const.TRACE_LEVEL > 0) {
/* 611 */       DmdbLog.trace(this, "getColumnType(int)", "columnIndex = " + 
/* 612 */         column);
/*     */     }
/* 614 */     checkIndex(column);
/*     */     
/* 616 */     int type = this.columnsInfo[(column - 1)].getSqlType();
/* 617 */     if ((this.comOra) && (DmdbType.isNUMERICtype(type)))
/*     */     {
/* 619 */       return 2;
/*     */     }
/* 621 */     if ((type == 2005) && (this.clobAsString))
/*     */     {
/* 623 */       return 12;
/*     */     }
/*     */     
/*     */ 
/* 627 */     return type;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getColumnTypeName(int column)
/*     */     throws SQLException
/*     */   {
/* 651 */     if (Const.TRACE_LEVEL > 0)
/* 652 */       DmdbLog.trace(this, "getColumnTypeName(int)", "columnIndex = " + 
/* 653 */         column);
/* 654 */     checkIndex(column);
/*     */     
/* 656 */     return this.columnsInfo[(column - 1)].getTypeName();
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isReadOnly(int column)
/*     */     throws SQLException
/*     */   {
/* 678 */     if (Const.TRACE_LEVEL > 0)
/* 679 */       DmdbLog.trace(this, "isReadOnly(int)", "column = " + 
/* 680 */         column);
/* 681 */     checkIndex(column);
/* 682 */     return (this.concurrency == 1007) && 
/* 683 */       (this.columnsInfo[(column - 1)].getDesc().isReadOnly());
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isWritable(int column)
/*     */     throws SQLException
/*     */   {
/* 706 */     if (Const.TRACE_LEVEL > 0)
/* 707 */       DmdbLog.trace(this, "isWritable(int)", "column = " + 
/* 708 */         column);
/* 709 */     checkIndex(column);
/* 710 */     return this.concurrency == 1008;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public boolean isDefinitelyWritable(int column)
/*     */     throws SQLException
/*     */   {
/* 733 */     if (Const.TRACE_LEVEL > 0)
/* 734 */       DmdbLog.trace(this, "isDefinitelyWritable(int)", "column = " + 
/* 735 */         column);
/* 736 */     checkIndex(column);
/* 737 */     return this.concurrency == 1008;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   public String getColumnClassName(int column)
/*     */     throws SQLException
/*     */   {
/* 769 */     if (Const.TRACE_LEVEL > 0)
/* 770 */       DmdbLog.trace(this, "getColumnClassName(int)", "column = " + 
/* 771 */         column);
/* 772 */     checkIndex(column);
/*     */     
/* 774 */     int jsqlType = getColumnType(column);
/*     */     
/* 776 */     return getClassName(jsqlType);
/*     */   }
/*     */   
/*     */   void checkIndex(int i) throws SQLException {
/* 780 */     if ((i < 1) || (i > getColumnCount())) {
/* 781 */       DBError.throwSQLException(6032);
/*     */     }
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\dm\jdbc\driver\DmdbResultSetMetaData_bs.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */